package com.dingreading.cloud.admin.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "order_form")
public class OrderForm implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 公司uid
     */
    @ApiModelProperty(value = "公司uid")
    private String corpUid;

    /**
     * 公司uid
     */
    @ApiModelProperty(value = "公司uid")
    private String corpName;

    /**
     * 加盟商名称
     */
    @ApiModelProperty(value = "加盟商名称")
    private String storeName;

    /**
     * 员工姓名
     */
    @ApiModelProperty(value = "员工姓名")
    private String staffName;

    /**
     * 门店uid
     */
    @ApiModelProperty(value = "门店uid")
    private String storeUid;

    /**
     * 员工uid
     */
    @ApiModelProperty(value = "员工uid")
    private String staffUid;

    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号")
    private String code;

    /**
     * 收支项目id
     */
    @ApiModelProperty(value = "项目id")
    private Integer projectType;

    /**
     * 收支项目名
     */
    @ApiModelProperty(value = "项目名")
    private String projectName;

    /**
     * 快递公司
     */
    @ApiModelProperty(value = "快递公司")
    private String expressName;

    /**
     * 快递单号
     */
    @ApiModelProperty(value = "快递单号")
    private String expressCode;

    /**
     * 收货人姓名
     */
    @ApiModelProperty(value = "收货人姓名")
    private String name;

    /**
     * 收货人手机号码
     */
    @ApiModelProperty(value = "收货人手机号码")
    private String phone;

    /**
     * 收货地址id
     */
    @ApiModelProperty(value = "收货地址id")
    private Long deliveryId;

    /**
     * 收货地址
     */
    @ApiModelProperty(value = "收货地址")
    private String address;

    /**
     * 优惠券id
     */
    @ApiModelProperty(value = "代金券id")
    private Long couponStaffId;

    /**
     * 代金券名
     */
    @ApiModelProperty(value = "代金券名")
    private String couponName;

    /**
     * 商品规格数量
     */
    @ApiModelProperty(value = "商品规格数量")
    private Integer goodsTypeNum;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private Integer buyNum;

    /**
     * 总价
     */
    @ApiModelProperty(value = "总价")
    private Double price;

    /**
     * 支付价格
     */
    @ApiModelProperty(value = "支付价格")
    private Double payPrice;

    /**
     * 使用的代金券价
     */
    @ApiModelProperty(value = "使用的代金券价")
    private Double couponPrice;

    /**
     * 商品折扣金额
     */
    @ApiModelProperty(value = "商品折扣金额")
    private Double discountPrice;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 状态
     * 0.取消 1.完成 2.未付款 3.待发货 4.已发货
     */
    @ApiModelProperty(value = "状态 0.取消 1.完成 2.待确认 3.待付款 4.待发货")
    private Integer status;

    /**
     * 状态名
     */
    @ApiModelProperty(value = "状态名")
    private String statusName;

    /**
     * 支付通道
     */
    @ApiModelProperty(value = "支付通道")
    private String payChannelCode;

    /**
     * 支付时间
     */
    @ApiModelProperty(value = "支付时间")
    private String payTime;

    /**
     * 支付用户id
     */
    @ApiModelProperty(value = "支付用户id")
    private String buyerId;

    /**
     * 支付订单号
     */
    @ApiModelProperty(value = "支付订单号")
    private String tradeNo;

    /**
     * 支付类型 1微信,2支付宝 3银行转账 4.代金券
     */
    @ApiModelProperty(value = "支付类型 1微信,2支付宝")
    private Integer payType;

    /**
     * 交易方式 扫码支付：NATIVE,app支付：APP,公众号支付：JSAPI,H5支付：WAP，堡币支付：BAOBI
     */
    @ApiModelProperty(value = "交易方式")
    private String tradeType;

    /**
     * 付款方式 1.不限 2.银行转账
     */
    @ApiModelProperty(value = "付款方式")
    private Integer paymentMethod;

    /**
     * 收款公司 1.叮叮文化 2.叮叮书房
     */
    @ApiModelProperty(value = "收款公司")
    private Integer payCorp;

    /**
     * 签单人uid
     */
    @ApiModelProperty(value = "签单人uid")
    private String saleStaffUid;

    /**
     * 签单人电话
     */
    @ApiModelProperty(value = "签单人电话")
    private String saleStaffPhone;

    /**
     * 签单人姓名
     */
    @ApiModelProperty(value = "签单人姓名")
    private String saleStaffName;

    /**
     * 赠品凭证
     */
    @ApiModelProperty(value = "赠品凭证")
    private String giftImg;

    /**
     * 财务审核状态 90.待财务审核 91.财务审核通过 92.财务审核拒绝 99.系统审核通过
     */
    @ApiModelProperty(value = "财务审核状态")
    private Integer financeStatus;

    /**
     * 财务审核状态名
     */
    @ApiModelProperty(value = "财务审核状态名")
    private String financeStatusName;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String addStaffName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 重量/克
     */
    @ApiModelProperty(value = "重量/克")
    private Double weight;


    @Column(ignore = true)
    private List<ShopCart> shopCartList;

    @Column(ignore = true)
    private List<OrderFormImage> imageList;

}
